home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Harvest C 1.3 / Source Code / Protos.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-03-31  |  41.3 KB  |  599 lines  |  [TEXT/ALFA]

  1. #ifndef Protos_INTERFACE
  2. #define Protos_INTERFACE
  3.  
  4. void    SetSymFlags(SYMVia_t, unsigned short);
  5. unsigned short    GetSymFlags(SYMVia_t);
  6. void                            UpdateOptionsMenu(void);
  7. void                            SaveOptsFile(void);
  8. int                             ReadOptsFile(void);
  9. pascal short                    SFHookF(int item, DialogPtr dPtr);
  10. pascal short                    SFHookG(int item, DialogPtr dPtr);
  11. pascal short                    SFHookH(int item, DialogPtr dPtr);
  12. pascal Boolean                  FoldersOnly(ParmBlkPtr p);
  13. InFileVia_t                     FileSelectorF(void);
  14. InFileVia_t                     FileSelectorG(void);
  15. InFileVia_t                     FileSelectorH(void);
  16. InFileVia_t                     FileSelector(OSType filetype);
  17. pascal short                    SFHookE(int item, DialogPtr theDialog);
  18. InFileVia_t                     FileSelectorE(void);
  19. int                             FileSelectorK(void);
  20. pascal short                    SFHookB(int item, DialogPtr theDialog);
  21. InFileVia_t                     FileSelectorB(OSType filetype);
  22. pascal short                    SFHookC(int item, DialogPtr theDialog);
  23. InFileVia_t                     FileSelectorC(OSType filetype);
  24. pascal short                    SFHookD(int item, DialogPtr theDialog);
  25. InFileVia_t                     FileSelectorD(OSType filetype);
  26. void                            UpdateFileMenu(void);
  27. void                            CheckFront(void);
  28. WindowPtr                       BuildWindow(int bindtofile, char *name);
  29. void                            DoFileMenu(int item);
  30. void                            DoOptionsMenu(int item);
  31. void                            DoCodeGenMenu(int item);
  32. void                            DoWarningsMenu(int item);
  33. void                            DoGeneralMenu(int item);
  34. void                            DoProjectMenu(int item);
  35. void                            WindowActivate(Boolean x);
  36. void                            DoAbout(void);
  37. void                            CloseIt(void);
  38. void                            SetUpWarningsMenu(void);
  39. void                            ApplicationInit(void);
  40. int                             GiveTime(void);
  41. int                             loword(long i);
  42. int                             hiword(long i);
  43. int                             lobyte(int i);
  44. int                             hibyte(int i);
  45. int                             reverse(int val);
  46. void                            emit(unsigned char bt);
  47. void                            eword(int wd);
  48. void                            elong(long wd);
  49. struct mne                     *mne_lookOP(Opcode_t OP);
  50. struct mne                     *mne_look(EString_t str);
  51. void                            PutEA(LocAMVia_t loc, struct ea * e);
  52. int                             eamatch(int gen, int spec);
  53. struct tmpl                    *tmpl_match(struct tmpl * p, int n, InstVia_t inst);
  54. void                            fsizchk(struct ea * e);
  55. int                             check(int konst, int type);
  56. int                             size76(void);
  57. int                             size109(void);
  58. int                             size109b(void);
  59. int                             adreg(struct ea * e);
  60. int                             modreg(struct ea * e);
  61. int                             genxreg(struct ea * e);
  62. void                            finish(struct ea * e);
  63. int                             fsize(void);
  64. void                            checkfclist(int r, struct ea * e);
  65. int                             getrlist(struct ea * e);
  66. int                             bitfld(struct ea * e, int r);
  67. void                            do_op(int opclass, int op, int op2);
  68. int                             pmmu_fc(struct ea * e);
  69. void                            process(InstVia_t inst);
  70. MPWDictListVia_t                RawMPWDictList(void);
  71. MPWDictVia_t                    RawMPWDict(char *name);
  72. MPWListVia_t                    RawMPWList(void);
  73. MPWRecordVia_t                  RawMPWRecord(void);
  74. void                            KillMPWRecord(MPWRecordVia_t rec);
  75. void                            KillRecordsList(MPWListVia_t reclist);
  76. void                            KillMPWDict(MPWDictVia_t rec);
  77. void                            KillDictList(MPWDictListVia_t Dicts);
  78. MPWDictVia_t                    FindDict(char *name, MPWDictListVia_t Dicts);
  79. void                            DoWord(unsigned char *buf, long x);
  80. void                            DoLong(unsigned char *buf, long x);
  81. void                            AddMPWRec(MPWRecordVia_t rec, MPWListVia_t Records);
  82. void                            MPW_Comment(char *comment, MPWListVia_t Records);
  83. void                            MPW_Last(MPWListVia_t Records);
  84. void                            MPW_First(unsigned char FlagsByte, unsigned short Version, MPWListVia_t Records);
  85. void                            AddMPWDict(char *name, unsigned short ID, int isdefined, MPWDictListVia_t Dicts);
  86. void                            MPW_DoDictionary(unsigned char FlagsByte, char *name, int Defined, unsigned short ID, MPWListVia_t Records);
  87. void                            MPW_Dictionary(unsigned char FlagsByte, char *name, int Defined, MPWListVia_t Records);
  88. void                            MPW_Module(unsigned char FlagsByte, unsigned short ModID, unsigned short ModSize, MPWListVia_t Records);
  89. void                            MPW_Size(unsigned char FlagsByte, long sizevalue, MPWListVia_t Records);
  90. void                            MPW_Contents(unsigned char FlagsByte, EString_t Buffer, long BufferSize, MPWListVia_t Records);
  91. void                            MPW_Reference(unsigned char FlagsByte, unsigned short RefID, long offset, MPWListVia_t Records);
  92. unsigned short                  NameID(MPWDictListVia_t Dicts, char *name, unsigned char FlagsByte, int isdefined, MPWListVia_t Records);
  93. unsigned char                   GetModuleFlags(char *name);
  94. void                            WordAlignContents(void);
  95. void                            AddContentsByte(unsigned char bt);
  96. void                            AddContentsWord(unsigned short wd);
  97. void                            AddContentsLong(unsigned long wd);
  98. void                            FlushCode(MPWListVia_t Records);
  99. void                            FlushData(MPWListVia_t Records);
  100. void                            CodeModule(unsigned char FlagsByte, unsigned short ModID, unsigned short ModSize, MPWListVia_t Records);
  101. void                            DataModule(unsigned char FlagsByte, unsigned short ModID, unsigned short ModSize, MPWListVia_t Records);
  102. void                            AddtoContents(InstVia_t inst);
  103. void                            DumpCodeList(InstListVia_t Codes, MPWListVia_t Records);
  104. OSType                          MakeOSType(char *d);
  105. void                            GenerateOBJ(InstListVia_t Codes, char *fname, short volrefnum, long dirID);
  106. void                            Dump68_OtherFormat(AssemEAVia_t e, GenericFileVia_t thefile);
  107. void                            Dump68_Location(LocAMVia_t loc, GenericFileVia_t thefile);
  108. void                            Dump68_Size(enum Size68 SZ, GenericFileVia_t thefile);
  109. int                             Dump68_Instruction(InstVia_t inst, GenericFileVia_t thefile);
  110. void                            Dump68_List(InstListVia_t Codes, GenericFileVia_t thefile);
  111. void                            KillLocation(LocAMVia_t loc);
  112. void                            KillAllLocations(void);
  113. void                            KillCodesList(InstListVia_t Codes);
  114. EString_t                       MakeEString(char *s);
  115. void                           *Ealloc(unsigned long size);
  116. void                            Efree(MemReq_t mem);
  117. EString_t                       AllocString(EString_t tmpstring);
  118. void                            InitDefaultOpts(void);
  119. void                            InitOpts(void);
  120. void                            CheckOpts(void);
  121. InFileVia_t                     SetOpts(int argc, EString_t argv);
  122. GenericFileVia_t                OpenGenericFile(char *name, short volrefnum, long dirID, char *mode, int iswind);
  123. int                             OpenInput(char *filename, int volrefnum, long dirID);
  124. int                             OpenError(char *filename, int volrefnum, long dirID);
  125. int                             OpenOutput(char *filename, int volrefnum, long dirID);
  126. void                            PushEnumTable(SymListVia_t syms);
  127. void                            PushSpaces(SymListVia_t syms, SymListVia_t tags, SymListVia_t labs);
  128. GenericFileVia_t                RawGenericFile(void);
  129. void                            PutFileOnHold(FILE * f);
  130. void                            TakeFileOffHold(FILE * f);
  131. void                            CloseGenericFile(GenericFileVia_t f);
  132. long                            FillGFileBuffer(GenericFileVia_t thef);
  133. int                             GetCGenericFile(GenericFileVia_t f);
  134. void                            GenericGetLine(GenericFileVia_t thef, char *buf);
  135. GenericFileVia_t                MakeErrFile(void);
  136. void                            EachFileInit(void);
  137. InFileVia_t                     Init(int argc, char ** argv);
  138. int                             RecSumString(SYMVia_t tmp);
  139. int                             SumStringLits(void);
  140. void                            FreeTree(ParseTreeVia_t root);
  141. void                            FreeSyms(SYMVia_t cur, int dodef);
  142. void                            FreeSymbolList(SymListVia_t table, int dodef);
  143. void                            FreePP(PPSYMVia_t cur);
  144. void                            FreePPSymbolList(PPSymListVia_t table);
  145. void                            FreeLab(LabSYMVia_t cur);
  146. void                            FreeLabSymbolList(LabSymListVia_t table);
  147. void                            RememberSwitch(LabSymListVia_t tab);
  148. void                            FreeSwitches(void);
  149. void                            FreeParamList(ParamRecVia_t head);
  150. void                            OneFileCleanUp(void);
  151. int                             UserFileError(int err);
  152. void                            CleanUp(void);
  153. void                            OneFileReport(void);
  154. void                            Report(void);
  155. int                             ReInit(char *filename, int volrefnum, long dirID);
  156. void                            GenerateOOPData(void);
  157. int                             CompileTo68k(char *filename, int volrefnum, long dirID);
  158. void                            PreprocOnly(char *name, short volrefnum, long dirID);
  159. void                            SingleFile(char *name, short volrefnum, long dirID);
  160. void                            MultiFile(InFileVia_t files);
  161. int                             main(int argc, char **argv);
  162. void                            EMake(char *filename, short volrefnum, long dirID, int buildall);
  163. LocAMVia_t                      RawLocation(void);
  164. int                             SameLocation(LocAMVia_t a, LocAMVia_t b);
  165. InstVia_t                       RawInstruction(void);
  166. InstListVia_t                   RawInstructionList(void);
  167. enum Size68                     M68_TypeSize(TypeRecordVia_t TP);
  168. void                            GenLoadEA(LocAMVia_t loc, LocAMVia_t dst, InstListVia_t Codes);
  169. void                            GenPushEA(LocAMVia_t loc, InstListVia_t Codes);
  170. LocAMVia_t                      GenSANECall(unsigned short Cmd, LocAMVia_t src, LocAMVia_t dst, InstListVia_t Codes);
  171. void                            Genmoverange(int size, LocAMVia_t src, LocAMVia_t dst, InstListVia_t Codes);
  172. int                             is68881SZ(enum Size68 size);
  173. void                            Genmove(enum Size68 size, LocAMVia_t src, LocAMVia_t dst, InstListVia_t Codes);
  174. SpillSlotVia_t                  GetLocalSlot(TypeRecordVia_t TP);
  175. void                            AddInstruction(InstVia_t inst, InstListVia_t Codes);
  176. InstVia_t                       GenStartComment(InstListVia_t Codes);
  177. InstVia_t                       GenCRComment(InstListVia_t Codes);
  178. InstVia_t                       GenPlainTextComment(char *string, InstListVia_t Codes);
  179. InstVia_t                       GenTextComment(char *string, InstListVia_t Codes);
  180. InstVia_t                       GenPlainTreeComment(ParseTreeVia_t expr, InstListVia_t Codes);
  181. InstVia_t                       GenComment(ParseTreeVia_t expr, InstListVia_t Codes);
  182. InstVia_t                       InsertInstruction(Opcode_t OP, enum Size68 SZ, LocAMVia_t left, LocAMVia_t right, InstVia_t after);
  183. InstVia_t                       GenInst(Opcode_t OP, enum Size68 SZ, LocAMVia_t left, LocAMVia_t right, InstListVia_t Codes);
  184. void                            AddInstList(InstListVia_t list, InstListVia_t Codes);
  185. void                            GenPush(LocAMVia_t loc, InstListVia_t Codes);
  186. void                            GenCodeLabel(LabSYMVia_t labsym, InstListVia_t Codes);
  187. void                            GenDataLabel(LabSYMVia_t labsym, InstListVia_t Codes);
  188. void                            GenStringLabel(LabSYMVia_t labsym, InstListVia_t Codes);
  189. void                            GenLabel(LabSYMVia_t labsym, InstListVia_t Codes);
  190. void                            ShiftRight(LocAMVia_t loc, int shifts, InstListVia_t Codes);
  191. void                            ShiftLeft(LocAMVia_t loc, int shifts, InstListVia_t Codes);
  192. unsigned long                   MakeTheMask(int lo, int hi);
  193. unsigned long                   MakeMask(LocAMVia_t loc);
  194. void                            GenDeConflictize(LocAMVia_t * a, LocAMVia_t * b, InstListVia_t Codes);
  195. LocAMVia_t                      Slotify(LocAMVia_t loc, InstListVia_t Codes);
  196. int                             PushBackwards(ParseTreeVia_t arg, ParamRecVia_t Param, int *pcount, InstListVia_t Codes);
  197. int                             PushArguments(ParseTreeVia_t fcallnode, int ispascal, ParamRecVia_t Param, InstListVia_t Codes);
  198. void                            GenCompareBranch2(LocAMVia_t leftop, ParseTreeVia_t right, Opcode_t OP, LabSYMVia_t label, InstListVia_t Codes);
  199. void                            GenCompareBranch(ParseTreeVia_t left, ParseTreeVia_t right, Opcode_t OP, LabSYMVia_t label, InstListVia_t Codes);
  200. void                            GenCompareZero(ParseTreeVia_t expr, LabSYMVia_t label, InstListVia_t Codes);
  201. void                            GenCompareNonZero(ParseTreeVia_t expr, LabSYMVia_t label, InstListVia_t Codes);
  202. LocAMVia_t                      GenLibraryCall(LocAMVia_t leftop, LocAMVia_t rightop, LabSYMVia_t label, InstListVia_t Codes);
  203. LocAMVia_t                      GenMulUnsigned(Opcode_t OP, LocAMVia_t leftop, LocAMVia_t rightop, InstListVia_t Codes);
  204. LocAMVia_t                      GenMulSigned(Opcode_t OP, LocAMVia_t leftop, LocAMVia_t rightop, InstListVia_t Codes);
  205. int                             isDRegMode(LocAMVia_t loc);
  206. int                             isARegMode(LocAMVia_t loc);
  207. LocAMVia_t                      GenTypeChange(ParseTreeVia_t expr, InstListVia_t Codes);
  208. void                            GenGlobalRecurse(SYMVia_t cur, InstListVia_t Codes, int Flush);
  209. int                             GenGlobal(SymListVia_t table, InstListVia_t Codes, int Flush);
  210. LocAMVia_t                      BuildFRegLocation(int reg);
  211. LocAMVia_t                      BuildDRegLocation(int reg);
  212. LocAMVia_t                      BuildAbsolute(long constant);
  213. LocAMVia_t                      BuildImmediate(int constant, enum Size68 SZ);
  214. LocAMVia_t                      BuildLargeGlobal(LabSYMVia_t displ);
  215. LocAMVia_t                      BuildARegLabelDisplace(int reg, LabSYMVia_t displ);
  216. LocAMVia_t                      BuildARegDisplaceField(int reg, int displ, struct TwoShorts bits);
  217. LocAMVia_t                      BuildARegDisplace(int reg, int displ);
  218. LocAMVia_t                      BuildARegPreDec(int reg);
  219. LocAMVia_t                      BuildARegPostInc(int reg);
  220. LocAMVia_t                      BuildARegIndirect(int reg);
  221. LocAMVia_t                      BuildARegDirect(int reg);
  222. LabSYMVia_t                     AddLabel(char *name);
  223. LocAMVia_t                      BuildAutoLoc(int offset, int size);
  224. LabSYMVia_t                     MakeSysLabel(char *name);
  225. LabSYMVia_t                     MakeUserLabel(char *name);
  226. LocAMVia_t                      BuildPCLabelDisplace(LabSYMVia_t name);
  227. LocAMVia_t                      BuildImmedLabelLoc(LabSYMVia_t name);
  228. LocAMVia_t                      BuildLabelOffset(LabSYMVia_t name, long c);
  229. LocAMVia_t                      BuildLabelLoc(LabSYMVia_t name);
  230. LabSYMVia_t                     MakeFloatLitLabel(int num);
  231. LabSYMVia_t                     MakeLitLabel(int num);
  232. LabSYMVia_t                     MakeEccLabel(int num);
  233. void                            DumpCharK(char *lit, int len, GenericFileVia_t thefile);
  234. void                            DumpStringLit(char *lit, GenericFileVia_t thefile);
  235. void                            DumpType(TypeRecordVia_t rec, GenericFileVia_t thefile, int pass);
  236. int                             GenC_Tree(ParseTreeVia_t root, GenericFileVia_t thefile);
  237. void                            GenTrapWords(ParseTreeVia_t init, InstListVia_t Codes);
  238. LocAMVia_t                      ParamLoc(int x);
  239. LocAMVia_t                      GenFunctionCall(ParseTreeVia_t expr, InstListVia_t Codes);
  240. LocAMVia_t                      GenLogicalOr(ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  241. LocAMVia_t                      GenLogicalAnd(ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  242. LocAMVia_t                      GenTernary(ParseTreeVia_t cond, ParseTreeVia_t trueval, ParseTreeVia_t falseval, InstListVia_t Codes);
  243. LocAMVia_t                      GenLogicalNegate(ParseTreeVia_t expr, InstListVia_t Codes);
  244. LocAMVia_t                      GenRelational(Opcode_t OP, ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  245. LocAMVia_t                      GenbitTwoOp(Opcode_t OP, ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  246. LocAMVia_t                      GenTwoOp(Opcode_t OP, ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  247. LocAMVia_t                      GenModulo(ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  248. LocAMVia_t                      GenMulDiv(Opcode_t OP, ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  249. LocAMVia_t                      GenSubscript(ParseTreeVia_t expr, InstListVia_t Codes);
  250. LocAMVia_t                      GenIndirectMember(ParseTreeVia_t expr, InstListVia_t Codes);
  251. LocAMVia_t                      GenMember(ParseTreeVia_t expr, InstListVia_t Codes);
  252. LocAMVia_t                      GenAddrOf(ParseTreeVia_t expr, InstListVia_t Codes);
  253. LocAMVia_t                      GenDeref(ParseTreeVia_t expr, InstListVia_t Codes);
  254. LocAMVia_t                      GenBitNegate(ParseTreeVia_t expr, InstListVia_t Codes);
  255. LocAMVia_t                      GenNegate(ParseTreeVia_t expr, InstListVia_t Codes);
  256. LocAMVia_t                      GenIdentifier(ParseTreeVia_t expr, InstListVia_t Codes);
  257. LocAMVia_t                      GenStringLit(ParseTreeVia_t expr, InstListVia_t Codes);
  258. void                            GenSwitchDefault(ParseTreeVia_t stmt, InstListVia_t Codes);
  259. void                            GenSwitchCase(ParseTreeVia_t stmt, InstListVia_t Codes);
  260. LocAMVia_t                      GenExpression(ParseTreeVia_t expr, InstListVia_t Codes);
  261. void                            GenInitGlobal(SYMVia_t symbol, InstListVia_t Codes);
  262. void                            GenPLit(char *bytes, InstListVia_t Codes);
  263. void                            GenLit(char *bytes, InstListVia_t Codes);
  264. void                            GenOneSeg(LabSYMVia_t cursym, InstListVia_t Codes);
  265. void                            GenOneLit(SYMVia_t cursym, InstListVia_t Codes);
  266. void                            GenSegsRecurse(SYMVia_t cursym, InstListVia_t Codes);
  267. void                            GenLitsRecurse(SYMVia_t cursym, InstListVia_t Codes);
  268. void                            GenSegments(InstListVia_t Codes);
  269. void                            GenStringLits(InstListVia_t Codes);
  270. void                            GenFloatLit(char *bytes, InstListVia_t Codes);
  271. void                            AddStatic(SYMVia_t symbol);
  272. int                             GenStaticRecurse(SYMVia_t cur, InstListVia_t Codes);
  273. void                            GenStatics(InstListVia_t Codes);
  274. void                            GenFloatLits(InstListVia_t Codes);
  275. int                             AllocateParameters(SymListVia_t table, int argoff);
  276. void                            Free2Locals(SymListVia_t list, InstListVia_t Codes);
  277. void                            Allocate2Locals(SymListVia_t table, InstListVia_t Codes);
  278. void                            GenSymbol(SYMVia_t thesymbol, InstListVia_t Codes);
  279. LocAMVia_t                      GenAssign(ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  280. void                            SetupLibLabels(void);
  281. LocAMVia_t                      GenModAssign(ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  282. LocAMVia_t                      GenMulDivAssign(Opcode_t OP, ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  283. LocAMVia_t                      GenOPAssignDREG(Opcode_t OP, ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  284. LocAMVia_t                      GenOPAssign(Opcode_t OP, ParseTreeVia_t left, ParseTreeVia_t right, InstListVia_t Codes);
  285. LocAMVia_t                      GenPreInc(ParseTreeVia_t expr, InstListVia_t Codes);
  286. LocAMVia_t                      GenPreDec(ParseTreeVia_t expr, InstListVia_t Codes);
  287. LocAMVia_t                      GenPostInc(ParseTreeVia_t expr, InstListVia_t Codes);
  288. LocAMVia_t                      GenPostDec(ParseTreeVia_t expr, InstListVia_t Codes);
  289. void                            GenCompound(ParseTreeVia_t stmt, InstListVia_t Codes);
  290. void                            GenReturn(ParseTreeVia_t val, InstListVia_t Codes);
  291. void                            GenIfThenElse(ParseTreeVia_t expr, ParseTreeVia_t thenstmt, ParseTreeVia_t elsestmt, InstListVia_t Codes);
  292. void                            GenDoWhile(ParseTreeVia_t stmt, ParseTreeVia_t expr, InstListVia_t Codes);
  293. void                            Genforstmt(ParseTreeVia_t first, ParseTreeVia_t cond, ParseTreeVia_t each, ParseTreeVia_t stmt, InstListVia_t Codes);
  294. void                            GenWhile(ParseTreeVia_t expr, ParseTreeVia_t stmt, InstListVia_t Codes);
  295. void                            GenLabelledStmt(ParseTreeVia_t expr, InstListVia_t Codes);
  296. void                            GenGotoStmt(ParseTreeVia_t stmt, InstListVia_t Codes);
  297. void                            GenSWITCH(ParseTreeVia_t expr, ParseTreeVia_t stmt, InstListVia_t Codes);
  298. int                             parse_line(void);
  299. enum Size68                     MakeEccSize(int s);
  300. LocAMVia_t                      MakeEccLoc(struct ea * e);
  301. int                             process_inlineasm(InstListVia_t Codes);
  302. int                             eval(int *result);
  303. int                             get_term(int *result);
  304. struct mne                     *mne_lookinline(char *str);
  305. struct tmpl                    *tmpl_matchinline(struct tmpl * p, int n);
  306. int                             eamatchinline(int gen, int spec);
  307. int                             scanea(struct ea * e);
  308. int                             do_multi(void);
  309. int                             optsize(int v);
  310. int                             optscale(void);
  311. int                             do_indexed(struct ea * e);
  312. int                             do_xn(struct ea * e);
  313. int                             checkpair(struct ea * e);
  314. int                             checklist(struct ea * e);
  315. int                             regbit(int type, int reg);
  316. int                             toughy(struct ea * e);
  317. int                             delim(int c);
  318. char                           *skip_white(char *ptr);
  319. int                             any(int c, char *str);
  320. char                            mapdn(int c);
  321. int                             head(char *str1, char *str2);
  322. int                             alpha(int c);
  323. int                             alphan(int c);
  324. char                           *next_str(void);
  325. SYMVia_t                        NextSym(SymListVia_t tbl, SYMVia_t cur);
  326. SYMVia_t                        LastSym(SymListVia_t tbl);
  327. void                            ImageStruct(SymListVia_t tbl, SYMVia_t member, ParseTreeVia_t init, InstListVia_t Codes);
  328. void                            ImageArray(TypeRecordVia_t typerec, ParseTreeVia_t init, InstListVia_t Codes);
  329. LocAMVia_t                      BuildFoldK(FoldValue_t val);
  330. int                             ImageInit(TypeRecordVia_t typerec, ParseTreeVia_t init, InstListVia_t Codes);
  331. PPSYMVia_t                      isDefined(char *name);
  332. PPSYMVia_t                      AddDefine(char *name, EString_t value);
  333. PPSYMVia_t                      AddMacroFunc(char *name, int NumArgs, EString_t value, SymListVia_t ParmNames);
  334. PPSYMVia_t                      UnDefine(char *name);
  335. void                            SetPPStatus(int stat);
  336. void                            GetPPStatus(void);
  337. int                             hexvalue(char c);
  338. int                             ishexdigit(char c);
  339. int                             isoctaldigit(char c);
  340. SYMVia_t                        isTypedefName(char *name);
  341. int                             isFirstIDChar(char c);
  342. int                             isAnyIDChar(char c);
  343. int                             isKeyword(char *toke);
  344. void                            ResetSRC(void);
  345. void                            PopSRC(void);
  346. void                            PushSRC(void);
  347. void                            PutBackChar(char c);
  348. unsigned char                   RawCharacter(void);
  349. unsigned char                   PreProcCharacter(void);
  350. unsigned char                   TokenCharacter(void);
  351. unsigned char                   NonSpaceCharacter(void);
  352. short                           ParamVal(char *PStr);
  353. void                            StoreTillEOL(EString_t buf);
  354. void                            SkipTillEOL(void);
  355. char                            GetCharacter(void);
  356. void                            LexerGetLine(char *buf);
  357. char                            EscapeConvert(char c);
  358. double                          Eintpower(int mant, int expon);
  359. int                             KWHash(char *name);
  360. void                            AddKW(char *name, Codigo_t val);
  361. void                            BuildKWHash(void);
  362. Codigo_t                        GetaToken(void);
  363. Codigo_t                        GetToken(void);
  364. int                             NextIs(Codigo_t val);
  365. long                            FetchToken(void);
  366. void                            PutBackToken(char *name, Codigo_t tokval);
  367. void                            UnFetchToken(void);
  368. int                             LoadLinker(void);
  369. void                            LinkerError(char *errstr);
  370. void                            LinkerErrorSYM(char *errstr, char *name);
  371. void                            ZeroBytes(char P__H * buf,  long bufsize);
  372. LinkerFileVia_t                 ReadObjectFile(char *fname, short volrefnum, long dirID);
  373. ModuleVia_t                     FindModuleID(unsigned short ID, LinkerFileVia_t file);
  374. DictionaryVia_t                 FindStrName(char *name, LinkerFileVia_t file);
  375. ModuleVia_t                     FindNameAll(char *name, LinkerFileVia_t file);
  376. DictionaryVia_t                 FindIDName(unsigned short ID, LinkerFileVia_t file);
  377. ModuleVia_t                     FindModuleExternal(unsigned short ID, LinkerFileVia_t localfile, DictionaryVia_t * dict, LinkerFileVia_t * foundfile, LinkerFileVia_t allfiles);
  378. int                             ResolveAllReferences(LinkerFileVia_t files);
  379. SegmentVia_t                    FindSegmentID(unsigned short ID);
  380. SegmentVia_t                    FindSegmentName(char *name);
  381. SegmentVia_t                    AddSegment(char *name, LinkerFileVia_t file);
  382. void                            AddToDATA(ModuleVia_t themod);
  383.  char                  *AddImage(ModulePackageVia_t modp,  char *buf);
  384.  char                  *AddDataImage(ModulePackageVia_t modp,  char *buf);
  385. Block_t                         ImageDATA(void);
  386. void                            SetFirstJT(SegmentVia_t seg);
  387. Block_t                         ImageCODE(SegmentVia_t seg);
  388. SegmentVia_t                    GetSeg(int SegID, LinkerFileVia_t file);
  389. void                            AddToSegment(unsigned short SegID, ModuleVia_t themod, LinkerFileVia_t file);
  390. void                            AssignModules(ModuleVia_t curmod, LinkerFileVia_t curfile);
  391. void                            AssignA5Offsets(SegmentVia_t curseg);
  392. void                            AssignMPWOffsets(LinkerFileVia_t files);
  393. Block_t                         ConcatImage(Block_t a, Block_t b, LinkerFileVia_t files);
  394. Block_t                         ImageJT(void);
  395. void                            AdjustOneRef(ModuleVia_t curmod);
  396. void                            AdjustAllReferences(LinkerFileVia_t files);
  397. int                             FlushLink(char *name, short volrefnum, long dirID, LinkerFileVia_t files);
  398. void                            KillRefs(ReferenceVia_t head);
  399. void                            KillModules(ModuleVia_t head);
  400. void                            KillDicts(DictionaryVia_t head);
  401. void                            KillModPacks(ModulePackageVia_t head);
  402. void                            KillImage(Block_t im);
  403. void                            KillSegments(SegmentVia_t head);
  404. void                            KillLinkFiles(LinkerFileVia_t head);
  405. void                            ELink(InFileVia_t flist, char *dest, short volrefnum, long dirID);
  406. ParseTreeVia_t                  BuildConstantNode(FoldValue_t * val);
  407. void                            ConstExprValue(ParseTreeVia_t root, FoldValue_t * resp);
  408. ParseTreeVia_t                  Constify(ParseTreeVia_t tree);
  409. int                             isRegDirect(LocAMVia_t loc);
  410. InstVia_t                       DeleteInst(InstVia_t inst);
  411. int                             isLABEL(InstVia_t a);
  412. int                             isBRANCH(InstVia_t a);
  413. int                             EquivAddress(InstVia_t a, InstVia_t b);
  414. void                            Optimize68(InstListVia_t Codes);
  415. FloatLitVia_t                   RawFloatLit(void);
  416. FloatLitVia_t                   AddFloatLit(long double x);
  417. void                            KillFloatList(FloatLitVia_t head);
  418. int                             GetIntValue(ParseTreeVia_t root);
  419. int                             GetIDENTIFIER(void);
  420. int                             CountArgs(ParseTreeVia_t list);
  421. void                            ProtoTypeCheck(SymListVia_t prot, ParseTreeVia_t * carg, int isellipsis);
  422. SYMVia_t                        FindMessage(char *name);
  423. int                             GetMessageKey(void);
  424. ParseTreeVia_t                  Do_postfix_expr(void);
  425. ParseTreeVia_t                  Do_argument_expr_list(void);
  426. ParseTreeVia_t                  Do_unary_expr(void);
  427. Codigo_t                        Do_unary_operator(void);
  428. ParamRecVia_t                   FindParam(char *name);
  429. void                            FreeSymImage(SymImageVia_t head);
  430. int                             Do_declaration(SymListVia_t table);
  431. TypeRecordVia_t                 Do_declaration_specifiers(int , enum StorageClassCode * , int *);
  432. SymImageVia_t                   Do_init_declarator_list(SymListVia_t table, TypeRecordVia_t typerec, enum StorageClassCode stor_class);
  433. SYMVia_t                        Do_init_declarator(SymListVia_t table, TypeRecordVia_t typerec, enum StorageClassCode stor_class);
  434. TypeRecordVia_t                 Do_struct_or_union_specifier(Codigo_t keyword_code);
  435. int                             Do_struct_declaration_list(SymListVia_t table);
  436. int                             Do_struct_declaration(SymListVia_t table);
  437. int                             Do_struct_declarator_list(SymListVia_t table, TypeRecordVia_t typerec);
  438. int                             Do_struct_declarator(SymListVia_t table, TypeRecordVia_t typerec);
  439. TypeRecordVia_t                 Do_enum_specifier(void);
  440. int                             Do_enumerator_list(void);
  441. int                             Do_enumerator(void);
  442. SYMVia_t                        Do_declarator(SymListVia_t table, TypeRecordVia_t typerec, TypeRecordVia_t * newtype);
  443. void                            RecurseSetSize(TypeRecordVia_t TP);
  444. void                            SetArraySizes(TypeRecordVia_t TP);
  445. SYMVia_t                        Do_direct_declarator(SymListVia_t table, TypeRecordVia_t typerec);
  446. TypeRecordVia_t                 Do_pointer(TypeRecordVia_t base);
  447. int                             Do_parameter_identifier_list(SymListVia_t table);
  448. int                             Do_identifier_list(SymListVia_t table);
  449. int                             Do_parameter_type_list(SymListVia_t table);
  450. int                             Do_parameter_list(SymListVia_t table);
  451. int                             Do_parameter_declaration(SymListVia_t table);
  452. TypeRecordVia_t                 Do_type_name(void);
  453. TypeRecordVia_t                 Do_abstract_declarator(TypeRecordVia_t typerec);
  454. TypeRecordVia_t                 Do_direct_abstract_declarator(TypeRecordVia_t typerec);
  455. ParseTreeVia_t                  Do_initializer(void);
  456. ParseTreeVia_t                  Do_initializer_list(void);
  457. int                             Do_declaration_list(SymListVia_t table);
  458. SYMVia_t                        FindClass(char *name);
  459. void                            ParseMethodDecl(char *methodname, TypeRecordVia_t functype);
  460. SymImageVia_t                   Do_external_declaration(short);
  461. void                            PushBlock(ScopesVia_t block);
  462. void                            PopBlock(void);
  463. ParseTreeVia_t                  RawTreeNode(char *id);
  464. ParseTreeVia_t                  BuildTreeNode(enum ParseTreeFormat kind, ParseTreeVia_t a, ParseTreeVia_t b, ParseTreeVia_t c);
  465. ParseTreeVia_t                  BuildIDTreeNode(enum ParseTreeFormat kind, ParseTreeVia_t a, ParseTreeVia_t b, ParseTreeVia_t c, char *id);
  466. ParseTreeVia_t                  Do_cast_expr(void);
  467. ParseTreeVia_t                  Do_multiplicative_expr(void);
  468. ParseTreeVia_t                  Do_additive_expr(void);
  469. ParseTreeVia_t                  Do_shift_expr(void);
  470. ParseTreeVia_t                  Do_relational_expr(void);
  471. ParseTreeVia_t                  Do_equality_expr(void);
  472. ParseTreeVia_t                  Do_and_expr(void);
  473. ParseTreeVia_t                  Do_exclusive_or_expr(void);
  474. ParseTreeVia_t                  Do_inclusive_or_expr(void);
  475. ParseTreeVia_t                  Do_logical_and_expr(void);
  476. ParseTreeVia_t                  Do_logical_or_expr(void);
  477. ParseTreeVia_t                  Do_conditional_expr(void);
  478. ParseTreeVia_t                  Do_assignment_expr(void);
  479. Codigo_t                        Do_assignment_operator(void);
  480. ParseTreeVia_t                  Do_expr(void);
  481. ParseTreeVia_t                  Do_constant_expr(void);
  482. LocAMVia_t                      Do_asm_operand(void);
  483. ParseTreeVia_t                  Do_assembler_statement(void);
  484. ParseTreeVia_t                  Do_statement(void);
  485. ParseTreeVia_t                  Do_labeled_statement(void);
  486. void                            RecurseChk(SYMVia_t cur);
  487. void                            CheckUsages(SymListVia_t table);
  488. ParseTreeVia_t                  Do_compound_statement(SYMVia_t functop);
  489. int                             isJumpStmt(ParseTreeVia_t tree);
  490. int                             isLabeledStmt(ParseTreeVia_t tree);
  491. ParseTreeVia_t                  Do_statement_list(void);
  492. ParseTreeVia_t                  Do_expression_statement(void);
  493. ParseTreeVia_t                  Do_selection_statement(void);
  494. ParseTreeVia_t                  Do_iteration_statement(void);
  495. ParseTreeVia_t                  Do_jump_statement(void);
  496. ParseTreeVia_t                  Do_method_body(SYMVia_t funcname);
  497. ParseTreeVia_t                  Do_function_body(SYMVia_t funcname);
  498. int                             Do_translation_unit(void);
  499. void                            PtrGenerate(ParseTreeVia_t * tree);
  500. void                            FuncPtrGenerate(ParseTreeVia_t * tree);
  501. ParseTreeVia_t                  TypeConvert(ParseTreeVia_t expr, TypeRecordVia_t newtype);
  502. void                            StandardIntPromote(ParseTreeVia_t * a);
  503. void                            StandardFloatPromote(ParseTreeVia_t * a);
  504. TypeRecordVia_t                 Coerce(ParseTreeVia_t * a, ParseTreeVia_t * b, int mixpointers);
  505. void                            RelateCoerce(ParseTreeVia_t * a, ParseTreeVia_t * b);
  506. TypeRecordVia_t                 AssignCoerce(ParseTreeVia_t * a, ParseTreeVia_t * b);
  507. void                            ReturnCoerce(TypeRecordVia_t param, ParseTreeVia_t * expr);
  508. void                            CallCoerce(TypeRecordVia_t param, ParseTreeVia_t * expr);
  509. SpillSlotVia_t                  RawSpillSlot(void);
  510. void                            FreePerms(void);
  511. void                            FreeAllRegs(void);
  512. SpillSlotVia_t                  GetSpillSlot(int size);
  513. void                            KillSpillList(void);
  514. SpillSlotVia_t                  SpillTemp(LocAMVia_t pushee, InstListVia_t Codes);
  515. void                            UnSpillTemp(LocAMVia_t freed, InstListVia_t Codes);
  516. int                             isPermReg(LocAMVia_t loc);
  517. int                             isTempReg(LocAMVia_t loc);
  518. void                            FreePerm(LocAMVia_t loc);
  519. void                            FreeTemp(LocAMVia_t loc);
  520. void                            FreeIt(LocAMVia_t loc);
  521. LocAMVia_t                      ValidateReg(LocAMVia_t loc, InstListVia_t Codes);
  522. int                             AvailFloatReg(void);
  523. int                             AvailAddrPerm(void);
  524. void                            PopPerms(InstListVia_t Codes);
  525. void                            PushPerms(void);
  526. int                             AvailFloatPerm(void);
  527. int                             AvailDataPerm(void);
  528. int                             AvailDataReg(void);
  529. int                             AvailAddrReg(void);
  530. LocAMVia_t                      TempAddrReg(InstListVia_t Codes);
  531. LocAMVia_t                      TempFloatReg(InstListVia_t Codes);
  532. LocAMVia_t                      PermAddrReg(void);
  533. LocAMVia_t                      PermFloatReg(void);
  534. LocAMVia_t                      PermDataReg(void);
  535. LocAMVia_t                      TempDataReg(InstListVia_t Codes);
  536. LocAMVia_t                      DictateTempFloat(LocAMVia_t operand, InstListVia_t Codes);
  537. LocAMVia_t                      DictateAnyFReg(LocAMVia_t operand, InstListVia_t Codes);
  538. LocAMVia_t                      DictateAnyDReg(LocAMVia_t operand, InstListVia_t Codes);
  539. LocAMVia_t                      DictateAnyAReg(LocAMVia_t operand, InstListVia_t Codes);
  540. LocAMVia_t                      DictateTempAReg(LocAMVia_t operand, InstListVia_t Codes);
  541. LocAMVia_t                      DictateTempDReg(LocAMVia_t operand, InstListVia_t Codes);
  542. void                            SaveDataRegisters(InstListVia_t Codes);
  543. void                            SaveTheRegisters(InstListVia_t Codes);
  544. SYMVia_t                        LookUpTag(char *ident);
  545. SymListVia_t                    CurrentSymbols(void);
  546. SymListVia_t                    CurrentTags(void);
  547. SymListVia_t                    CurrentLabels(void);
  548. SymListVia_t                    CurrentEnums(void);
  549. SYMVia_t                        LookUpSymbol(char *ident);
  550. SYMVia_t                        RawSymbol(char *name);
  551. PPSYMVia_t                      RawPPSymbol(char *name);
  552. LabSYMVia_t                     RawLabSymbol(char *name);
  553. SymListVia_t                    RawTable(int);
  554. PPSymListVia_t                  RawPPTable(void);
  555. LabSymListVia_t                 RawLabTable(void);
  556. unsigned long                   TableHash(char *name);
  557. unsigned long                   TableHash(char *name);
  558. SymImageVia_t                   ListAdd(SymImageVia_t table, SYMVia_t symbol);
  559. void                            DumpTable(SYMVia_t root);
  560. SYMVia_t                        TableAdd(SymListVia_t table, char *name);
  561. PPSYMVia_t                      PPTableAdd(PPSymListVia_t table, char *name);
  562. LabSYMVia_t                     LabTableAdd(LabSymListVia_t table, char *name);
  563. SYMVia_t                        TableTailAdd(SymListVia_t table, char *name);
  564. LabSYMVia_t                     LabTableTailAdd(LabSymListVia_t table, char *name);
  565. int                             TableSearchNum(SymListVia_t table, char *name);
  566. int                             PPTableSearchNum(PPSymListVia_t table, char *name);
  567. void                            LabTableIndexSearch(LabSYMVia_t root, int ndx, LabSYMVia_t * out);
  568. void                            TableIndexSearch(SYMVia_t root, int ndx, SYMVia_t * out);
  569. SYMVia_t                        TableGetNum(SymListVia_t table, int num);
  570. LabSYMVia_t                     LabTableGetNum(LabSymListVia_t table, int num);
  571. struct uniqstring P__H         *UniqSearch(char *name);
  572. void                            KillHalUniqs(struct uniqstring P__H * head);
  573. void                            UniqAdd(char *name);
  574. SYMVia_t                        TableSearch(SymListVia_t table, char *name);
  575. SYMVia_t                        TableRemove(SymListVia_t table, char *name);
  576. PPSYMVia_t                      PPTableSearch(PPSymListVia_t table, char *name);
  577. LabSYMVia_t                     LabTableSearch(LabSymListVia_t table, char *name);
  578. PPSYMVia_t                      PPTableRemove(PPSymListVia_t table, PPSYMVia_t name);
  579. SymListVia_t                    CopySymTable(SymListVia_t table);
  580. int                             MaxSearch(SYMVia_t root, int num);
  581. int                             MaxSizes(SymListVia_t table);
  582. SYMVia_t                        FirstSym(SymListVia_t tbl);
  583. int                             SameTable(SymListVia_t a, SymListVia_t b);
  584. void                            PrintWarningText(enum Ecc_Warnings whichone);
  585. OSErr
  586. FindOMFFile(char *name, short volrefnum, long dirID, FSSpec * f);
  587. OSErr
  588. FindCFile(char *name, short volrefnum, long dirID, FSSpec * f);
  589. short                           InitOMF(InstListVia_t Codes, char *fname, short volrefnum, long dirID);
  590.  
  591. void
  592.                                 FlushOMF(short filenum);
  593.  
  594. void
  595.                                 FinishOMF(short filenum);
  596. void                            InitLocAM(void);
  597.  
  598. #endif
  599.